package com.yida.gwj.deposit.domain.request;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description 缴存业务管理-单位批量缴费缴存明细修改参数对象
 * @Author wws
 * @Date 2023-02-17
 */
@ApiModel("缴存明细信息")
public class GwjUnitDepositBusinessDetailEditRequest {

    @ApiModelProperty("缴存明细主键")
    private Long depositDetailId;

    @ApiModelProperty("编号")
    private Long bizNum;

    @ApiModelProperty("缴费楼栋")
    @NotBlank(message = "请选择缴费楼栋")
    @Size(max = 255,message = "楼栋名称不得超过255个字符")
    private String buildInfo;

    @ApiModelProperty("缴费金额")
    @NotNull(message = "缴费金额不能为空")
    @Digits(integer = 9,fraction = 2,message = "缴费金额不正确")
    @DecimalMax(value = "999999999.99",message = "缴费金额最大不得超过999999999.99")
    private BigDecimal depositMoney;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("缴费日期")
    private Date depositTime;

    @ApiModelProperty("备注")
    @Size(max = 255,message = "备注不得超过255个字符")
    private String remark;

    @ApiModelProperty("银行主键")
    private Long bankId;

    @ApiModelProperty("银行名称")
    private String bankName;

    @ApiModelProperty("发票号")
    @Size(max = 100,message = "发票号不得超过100个字符")
    private String invoiceNumber;

    @ApiModelProperty("面积")
    @Digits(integer = 9,fraction = 2,message = "面积格式不正确")
    @DecimalMax(value = "999999999.99",message = "面积最大不得超过999999999.99")
    private BigDecimal depositSize;

    @ApiModelProperty("开发商")
    @Size(max = 100,message = "开发商不得超过100个字符")
    private String companyName;

    public Long getDepositDetailId() {
        return depositDetailId;
    }

    public void setDepositDetailId(Long depositDetailId) {
        this.depositDetailId = depositDetailId;
    }

    public Long getBizNum() {
        return bizNum;
    }

    public void setBizNum(Long bizNum) {
        this.bizNum = bizNum;
    }

    public String getBuildInfo() {
        return buildInfo;
    }

    public void setBuildInfo(String buildInfo) {
        this.buildInfo = buildInfo;
    }

    public BigDecimal getDepositMoney() {
        return depositMoney;
    }

    public void setDepositMoney(BigDecimal depositMoney) {
        this.depositMoney = depositMoney;
    }

    public Date getDepositTime() {
        return depositTime;
    }

    public void setDepositTime(Date depositTime) {
        this.depositTime = depositTime;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Long getBankId() {
        return bankId;
    }

    public void setBankId(Long bankId) {
        this.bankId = bankId;
    }

    public String getBankName() {
        return bankName;
    }

    public void setBankName(String bankName) {
        this.bankName = bankName;
    }

    public String getInvoiceNumber() {
        return invoiceNumber;
    }

    public void setInvoiceNumber(String invoiceNumber) {
        this.invoiceNumber = invoiceNumber;
    }

    public BigDecimal getDepositSize() {
        return depositSize;
    }

    public void setDepositSize(BigDecimal depositSize) {
        this.depositSize = depositSize;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    @Override
    public String toString() {
        final StringBuffer sb = new StringBuffer("GwjUnitDepositBusinessDetailEditRequest{");
        sb.append("depositDetailId=").append(depositDetailId);
        sb.append(", bizNum=").append(bizNum);
        sb.append(", buildInfo='").append(buildInfo).append('\'');
        sb.append(", depositMoney=").append(depositMoney);
        sb.append(", depositTime=").append(depositTime);
        sb.append(", remark='").append(remark).append('\'');
        sb.append(", bankId=").append(bankId);
        sb.append(", bankName='").append(bankName).append('\'');
        sb.append(", invoiceNumber='").append(invoiceNumber).append('\'');
        sb.append(", depositSize=").append(depositSize);
        sb.append(", companyName='").append(companyName).append('\'');
        sb.append('}');
        return sb.toString();
    }
}
